OLD GIT - https://git.gosuslugi.local/ervu/source/mz-xsd-storage/-/tree/master/mnsv-ervu-measures-temporary-confirm-fsb

GIT (вынесено в отдельный репозиторий в рамках Невозможно найти сервер Jira для этого макроса. Причиной может быть конфигурация ссылки на приложение. ) - https://git.gosuslugi.local/ervu/source/mz-mnsv-ervu-measures-temporary-confirm-fsb/-/tree/dev/

Описание

Сервис для работы с ВС "ЕРВУ_Подтверждение введения временной меры запрет на выезд из РФ для граждан в целях обеспечения воинского учета" для ФОИВ ФСБ (urn://rostelekom.ru/ERVU-MeasuresTemporaryConfirmFSB/1.0.1). Обрабатывает сообщения, поступающие от ФОИВ через СМЭВ по этому виду сведений.

Сервис вынесен в отдельный репозиторий с использованием библиотеки mzServiceCore

Назначение

Сервис реализует передачу данных о введении или отмене временной меры "Запрет на выезд из Российской Федерации". JSON передаётся из процессов, преобразуется в XML сообщение по формату ВС https://lkuv.gosuslugi.ru/paip-portal/#/inquiries/card/e475ed84-8781-4646-8a4f-0cfa965c12ef

На текущий момент работает с версией ВС 1.0.1


Схема взаимодействия ФОИВ ФСБ по части введения и отмены временных мер

mz-mnsv-ervu-abroad-forbidden-temporary 
ЕРВУ
Подтверждение отправки запроса
(SendRequestResponse)
СМЭВ3
Отправка сообщения ответа
(GetRequestResponse)
Проверка наличия сведений
(GetRequestRequest)
Подтверждение получения сообщения-ответа
(AckRequest)
Ответ о получении подтверждения
(AckResponse)
Отправка сообщения ответа
(GetRequestResponse)
Проверка наличия сведений
(GetRequestRequest)
Подтверждение получения сообщения-ответа
(AckRequest)
Ответ о получении подтверждения
(AckResponse)
Подтверждение отправки ответа
(SendResponseResponse)
Отправка ответа
(SendResponseRequest)
Проверка на наличие сведений
(GetResponseRequest)
МРЦОД
Передача сведений о введении мер
(urn://rostelekom.ru/ERVU-AbroadForbiddenTemporary/1.0.5)
measuresTemporary.status: true
(SendRequestRequest)
Проверка на наличие сведений
(GetRequestRequest)
Передача сведений
(GetRequestResponse)
Подтверждение получения сообщения из очереди СМЭВ
(AckRequest)
Ответ о получении подтверждения
(AckResponse)
Передача сообщения - подтверждения введения временных мер по 
ВС urn://rostelekom.ru/ERVU-MeasuresTemporaryConfirmFSB/1.0.1
(SendRequestRequest) 
Подтверждение отправки запроса
(SendRequestResponse)
Подтверждение отправки ответа
(SendResponseResponse)
Отправка ответа
(SendResponseRequest)
Передача сведений об отмене мер
(urn://rostelekom.ru/ERVU-AbroadForbiddenTemporary/1.0.5)
measuresTemporary.status: false
(SendRequestRequest)
Подтверждение отправки запроса
(SendRequestResponse)
Проверка на наличие сведений
(GetResponseRequest)
Передача сведений
(GetResponseResponse)
Подтверждение получения сообщения из очереди СМЭВ
(AckRequest)
Ответ о получении подтверждения
(AckResponse)
Проверка на наличие сведений
(GetRequestRequest)
Передача сведений
(GetRequestResponse)
Подтверждение получения сообщения из очереди СМЭВ
(AckRequest)
Ответ о получении подтверждения
(AckResponse)
Ответ о получении подтверждения
(AckResponse)
Передача сведений
(GetResponseResponse)
ФЦОД ПС
Подтверждение применения меры
Предоставление списка лиц
Запрос списка лиц, для которых
установлено временное ограничение
Подтверждение отправки
Подтверждение отмены меры
Предоставление списка лиц
Запрос списка лиц, для которых
отменено временное ограничение
Подтверждение отправки
Передача сообщения - подтверждения отмены временных мер по 
ВС urn://rostelekom.ru/ERVU-MeasuresTemporaryConfirmFSB/1.0.1
(SendRequestRequest) 
Подтверждение отправки запроса
(SendRequestResponse)
Подтверждение получения сообщения из очереди СМЭВ
(AckRequest)


Примеры запроса-ответа

Инициатором сеанса выступает система ЕРВУ, передавая сообщение о введении или отмене временной меры через вид сведений urn://rostelekom.ru/ERVU-AbroadForbiddenTemporary (текущая версия 1.0.5)

После получения сообщения от системы ЕРВУ, ФОИВ передаёт подтверждение через соответствующий ВС

Структура запроса (инициатор - ФОИВ)

Поле в XMLНазначение поляФЛККол-во вхожденийКомментарий
Начало блока common - общая информация о гражданине
lastNameПередача фамилии гражданинаКириллица, пробел, дефис. Максимум - 100 символов1..1
firstNameПередача имени гражданинаКириллица, пробел, дефис. Максимум - 100 символов1..1
middleNameПередача отчества гражданинаКириллица, пробел, дефис. Максимум - 100 символов0..1
Начало блока birthDate - сведения о дате рождения гражданина
dayДень рождения гражданинаЧисло от 01 до 311..1
monthМесяц рождения гражданинаЧисло от 01 до 121..1
yearГод рождения гражданинаЧисло от 1900 до 20991..1
Конец блока birthDate - сведения о дате рождения гражданина
snilsПередача СНИЛС гражданина11 цифр0..1СНИЛС передаётся без пробелов/дефисов 
idErnПередача ИД ЕРН гражданина12 цифр0..1
Конец блока common - общая информация о гражданине
Начало блока passport - сведения о ДУЛ гражданина
seriesСерия ДУЛ гражданина4 цифры1..1
numberНомер ДУЛ гражданина6 цифр1..1
issueDateДата выдачи ДУЛ гражданинаДата в формате dd.mm.yyyy1..1
Конец блока passport - сведения о ДУЛ гражданина
Начало блока measuresTemporary - сведения о временной мере
measureIdИдентификатор временной мерыЛатиница, цифры, дефис, пробел. Максимум - 85 символов1..1
numberНомер решения о введении мерыЦифры, дефис. Максимум 250 символов1..1
dateДата решения о введении мерыДата в формате dd.mm.yyyy1..1
militaryCommissariatNameНаименование организации, принявшей решение о введении мерыКириллица, цифры, пробел, спецсимволы. Максимум - 512 символов0..1
measureCodeКод временной мерыСправочник (список значений правее)1..1
  • 1 (Запрет на выезд из Российской Федерации)
measureNameТип временной мерыКириллица, пробел. Максимум - 100 символов1..1
statusCodeКод статуса мерыСправочник (список значений правее)1..1
  • 01 (Введено в действие)
  • 02 (Отменено)
  • 03 (Невозможно однозначно идентифицировать лицо)
statusNameНаименование статуса мерыСправочник (список значений правее)1..1
  • Введено в действие
  • Отменено
  • Невозможно однозначно идентифицировать лицо

Конец блока measuresTemporary - сведения о временной мере

Сообщение в формате XML

request Развернуть исходный код


Атрибут routing

В XML передаётся атрибут routing, в котором от ФОИВ передаётся код маршрутизации (мнемоника) стенда, на который отправляется запрос. Значение для атрибута передаётся в теге sender в сообщении от ЕРВУ по виду сведений urn://rostelekom.ru/ERVU-AbroadForbiddenTemporary (текущая версия 1.0.5)

Структура ответа (ответчик - ЕРВУ)

Поле в XML
Назначение поля
ФЛК
Кол-во вхождений
Комментарий
statusCodeКод статуса сообщенияСправочник (значения правее)1..1
  • 1 (Информация принята)
  • 2 (Получен один или несколько некорректных (ошибочных) уникальных идентификаторов measureId)
  • 3 (Запрос на подтверждение о снятии временной меры получен раньше, чем подтверждение о введении временной меры)
  • 99 (Данная версия вида сведения не поддерживается. Воспользуйтесь для отправки запросов актуальной версией вида сведения)
statusNameНаименование статуса сообщенияМаксимально количество символов - 2501..1

Сообщение в формате XML

request Развернуть исходный код

Kafka

Consumer

  • mz.petition.in.request
  • ervu.subpoena.restriction.updated

Producer

Проверка XML на валидность

В сервисе реализована проверка XML согласно XSD-схеме вида сведений. Флаг, отвечающий за функционал, лежит в конфиге сервиса по пути extra_options.validator.xml.enabled с значением true

validator config Развернуть исходный код


В такой реализации некорректный JSON, поступающий из процессов и преобразованный в XML, проверяется внутри сервиса на валидность по схеме вида сведений. Схема расположена по пути /src/main/resources в папке с версией ВС

На текущий момент путь до XSD-схемы /src/main/resources/1_0_1/schema/schema.xsd

Если JSON некорректен, в логах сервиса будет ошибка

Пример ошибки из логов

validation error log Развернуть исходный код

В данном случае 

Value 'Фамилия476592111354' - значение из процесса

pattern '[-А-Яа-яёЁ ]{1,100}' - паттерн RegExp, установленный для поля

type 'string-100' - тип данных для элемента, установленный в XSD схеме


Самая частая ошибка на тестовых стендах - в ФИО гражданина есть цифры (т.к. большинство записей заводится в таком формате: 'Фамилия476592111354 Имя476592111354 Отчество476592111354'), которые не предусмотрены в XSD

Написать комментарий...